package sft.Autenticacao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import sft.Autenticacao.perfil.PerfilControle;
import sft.Autenticacao.perfil.logica.PerfilAcesso;
import sft.BancodeDados.CriaConexao;
import sft.Logica.Usuario;

public class UserList {
    
    private static UserList instance;
    private static List<Usuario> lista;    
    private static Connection conexao;
    
    public UserList() throws SQLException {
        conexao = new CriaConexao().getConnection();
    }
    

    
    public List<Usuario> getLista() throws SQLException{
        String sql = "select * from sft_usua";
        
        PreparedStatement stmt = conexao.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        
        PerfilControle ctrl = new PerfilControle();
        List<PerfilAcesso> list = ctrl.getList(new PerfilAcesso() , false);
        
        lista = new ArrayList<>();
        while (rs.next()) {            
            Usuario u = new Usuario();
            PerfilAcesso p = new PerfilAcesso();
            u.setId(rs.getInt(1));
            u.setNome(rs.getString(2));
            u.setSenha(rs.getString(3));
            p.setId(rs.getInt(4));
            u.setPerfil(setPerfil(p));
            lista.add(u);
        }
        for (int i = 0; i < lista.size(); i++) {
            for (int j = 0; j < list.size(); j++) {
                if(lista.get(i).getPerfil().getId() == list.get(j).getId()){
                    lista.get(i).setPerfil(list.get(j));
                }
            }
        }
        
        
        return lista;
    }
    
    public PerfilAcesso setPerfil(PerfilAcesso p){
        
        
        return p;
    }
    
    public static UserList getInstance() throws SQLException {
        if(instance == null){
            instance = new UserList();
        }
        return instance;
    }
}
